MYSQL 您所在的位置:网站首页 保温棉施工方法 专业版附图讲解大全 MYSQL

MYSQL

2023-06-19 15:32| 来源: 网络整理| 查看: 265

一、MySQL基础语句。(增、删、改、差)

mysql> create database zeng;// 数据库建立

mysql> create table zeng.jia (id int,name char(15),tel int,primary key(id)); 建立一个名为 //userlist 表格 字段 id 整型 name 字符型 电话 整型 主键值是学号

 

mysql> insert into zeng.jia (id,name,tel) value (1,'xiu',111111111)  

 

mysql>drop table zeng.jia/// 删除表 mysql>drop database zeng //删除数据库

 

mysql> alter table test.userlist add sex char(10) after name; //在姓名和电话之间加入了性别字段

 

mysql> show databases; //查看有哪些数据库 mysql> use mysql; //进入一个名字为 mysql 的数据库 mysql> show tables; //查看当前数据库中有哪些表 mysql> select * from user; //查看表 mysql> desc mysql.user; //查看表结构

特殊数据库information_schema

information_schema数据库表说明:

SCHEMATA表:提供了当前mysql实例中所有数据库的信息。是show databases的结果取之此表。

TABLES表:提供了关于数据库中的表的信息(包括视图)。详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息。是show tables from schemaname的结果取之此表。

COLUMNS表:提供了表中的列信息。详细表述了某张表的所有列以及每个列的信息。是show

columns from schemaname.tablename的结果取之此表。

STATISTICS表:提供了关于表索引的信息。是show index from schemaname.tablename的结果取之此表。

USER_PRIVILEGES(用户权限)表:给出了关于全程权限的信息。该信息源自mysql.user授权表。是非标准表。

SCHEMA_PRIVILEGES(方案权限)表:给出了关于方案(数据库)权限的信息。该信息来自mysql.db授权表。是非标准表。

TABLE_PRIVILEGES(表权限)表:给出了关于表权限的信息。该信息源自mysql.tables_priv授权表。是非标准表。

COLUMN_PRIVILEGES(列权限)表:给出了关于列权限的信息。该信息源mysql.columns_priv授权表。是非标准表。

COLLATIONS表:提供了关于各字符集的对照信息。

TABLE_CONSTRAINTS表:描述了存在约束的表。以及表的约束类型。

KEY_COLUMN_USAGE表:描述了具有约束的键列。

VIEWS表:给出了关于数据库中的视图的信息。需要有show views权限,否则无法查看视图信息。

TRIGGERS表:提供了关于触发程序的信息。必须有super权限才能查看该表

 二、sql注入 sql 注入原理

针对 SQL 的攻击行为可以描述为通过用户可控参数中注入 SQL 语法,破坏原有 SQL 结 构,达到编写程序时意料之外结果的攻击行为,其成因可以归结为以下两个原因叠加造成的:

1、程序编写者在处理程序和数据库交互时,使用字符串拼接的方式构造 SQL 语句。

2、未对用户可控参数进行足够的过滤,便便将参数内容拼接到 SQL 语句中。

注入点检测

识别方法:通过在url栏输入'、and 1=1、or 1=1、and sleep(1),如果出现报错,或者页面不一致,则可能存在注入点。

注入手法 1、联合注入

注入点的判断 ?id=33 /?id=34/ ?id=32/ ?id=33'

判断列(字段)数 ?id=1' order by 1 正常 /?id=1' order by 2 正常/ ... /?id=1' order by n 不正常 /说明当前表中有(n-1) 列。

 

URL框中输入id=1与id=2-1回显结果不一致由此判断可能存在sql注入漏洞,若存在类型为字符型。 

 三列,也就是存在三个字段

 爆出数据库名,表名以及字段

2、报错盲注

在注入点的判断过程中,发现数据库中 SQL 语句的报错信息,会显示在页面中,因此可以进 行报错注入。

注意:错误信息来自于 数据库 、 中间件 还是 Web 容器 。

and extractvalue(1,concat(0x5e,(select database()),0x5e)) --+

3、布尔盲注 

利用页面的布尔类型状态来进行判断,⽬标获取数据库名字。 计算数据库名字的长度 .

4、延时注入 

在没有得到任何回显的情况下,只能通过延迟页面的跳转来进行数据库的核对

?id=3' and if(length(database())=8,sleep(5),1)--+

三、sql 注入防御

过滤特殊字符,采用参数化查询,使用户输入的参数永远为普通字符,不会被作为特殊符号打 乱原有 sql 语句。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有